ソフトウエア・システム開発では、著作権法上の問題や民法に基づく瑕疵担保責任・損害賠償等の当事者の権利義務の問題に加え、開発工程をどのように行うかという当事者の役割分担や作業内容の確定が必要であると言えます。
ですので、ソフトウエア・システム開発委託契約の契約書作成においては、当事者の保護したい権利義務を明確に定めることと共に、ソフトウエア・システム開発の各工程での各当事者の関わり方も明確に定めることにより、成果物たるソフトウエアがユーザが意図したものとなるようにし、後の紛争を予防することが大きな目的となると言えます。
以下、ソフトウエア・システム開発委託契約における注意点等を見ていきたいと思います。
ソフトウエア・システム開発委託契約では、当該ソフトウエア・システム開発の完成に向けて一つの契約で一括して委託する「一括契約方式」と、当該ソフトウエア・システム開発の工程を複数に分割し各過程で複数の個別契約を締結する「多段階契約方式」という契約方式に大きく区分することが出来ます。
では、ソフトウエア・システム開発委託契約においては、どちらの方式を採用すべきでしょうか。
それは、「多段階契約方式」と言えます。
なぜなら、「一括契約方式」では、当該ソフトウエアの全貌を明らかにする「要件定義」の工程をしっかり行わないことが多く、当該ソフトウエア・システム開発の目的物が曖昧となり、開発中にベンダとユーザで摺り寄せていくことによって、納期の遅延や開発料金の増大等が生じ、また、完成したソフトウエアがユーザが意図したものとは違うという結果に終始する可能性が高いからです。
他方、「多段階契約方式」では、ソフトウエア・システム開発の全過程を「要件定義」「基本設計」「詳細設計」「プログラミング」「テスト・運用」等に分割し、各工程においてその工程に必要な作業や目的・料金・納期等を詳細に記した個別契約を締結しますので、見積もり金額内での適切な作業が積み重ねられ、また「要件定義」工程をしっかり経ることによって成果物たる当該ソフトウエアの全貌が明らかになり、ユーザが意図したシステムが開発されることになります。
多段階契約方式では、各工程において個別契約を締結していきますが、各個別契約において同じ内容の取り決めが重複しますので、それらをまとめて基本契約書として合意しておく方が、各個別契約の締結においてよりその工程の詳細を契約書にまとめやすくなると言えます。
そこで、ソフトウエア・システム開発の手法と基本契約書・基本合意書との関係について見ていきたいと思います。
ソフトウエア・システム開発では、その開発手法としまして「ウォーターフォール型」「アジャイル型」等があります。
まずはウォーターフォール型と呼ばれる手法ですが、これは、開発の全過程を「要件定義」「基本設計」「詳細設計」「プログラミング」「テスト・運用」等に分割し、各工程を順次進めていく手法です。
他方、アジャイル型では、当該ソフトウエアの機能単位で開発工程を繰り返していく手法となります。
主にWEB開発に用いられたりいます。
ウォーターフォール型では、ソフトウエア・システム開発の全体像が把握し易いため納期や委託金額の総合計を割り出すことができ、基本契約書や基本合意書で納期や総費用を合意し、その範囲内で委託することができるので、ユーザにとって安心して開発を委託することが可能となります。
ですが、アジャイル型では、ソフトウエアの機能別に開発を行っていくため、その全貌が明らかになりにくく、納期や委託費用の総合計を割り出しにくいと言えます。
ですので、アジャイル型では、納期の延期や費用の増大等が生じる可能性がありますので、アジャイル型においても基本合意書等において出来る限り合意事項を確認しておく方が後の紛争を予防することが出来ると言えます。